home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / ab20 / unarced / graphics / mandelpaug / mandelpaug.doc < prev    next >
Text File  |  1995-03-17  |  34KB  |  777 lines

  1. MandelPAUG release 2.0                        1 Oct 90
  2.  
  3.     An enhanced Mandelbrot and Julia set fractal generator
  4.           exclusively for the Amiga computer!
  5.  
  6. This is a fully functional implementation of the MandFXP program which was
  7. written by Bruce Dawson and Steve Larocque of CygnusSoft Software in
  8. Vancouver, B.C.  CygnusSoft Software released MandFXP as freely
  9. redistributable along with its source code.
  10.  
  11. This version was produced by Jerry D. Hedden for inclusion in the
  12. Philadelphia Amiga Users Group's (PAUG) Public Domain Software Library.
  13. Compared to previous releases, this version has the complete on-line help
  14. function, a fully implemented "Mandelbrot and Julia set movie" mode, and
  15. sports many improvements in the user-interface.  Non-visible changes include
  16. code cleanup, numerous bug fixes, better utilization of chip ram, and
  17. special code for utilizing 68020 32-bit multiplication.  The algorithmic
  18. portions of the original MandFXP source are largely unchanged.
  19.  
  20. Introduction and Theory
  21. ~~~~~~~~~~~~~~~~~~~~~~~
  22. The Mandelbrot set and the Julia set are both what is known as 'fractals'.
  23. For each pixel, a mathematical operation is performed repeatedly on its
  24. coordinates until either the result grows larger than a certain limit (two)
  25. or the operation has been performed the maximum number of times selected by
  26. the user.  This is why Mandelbrot programs take so long.  For each pixel
  27. they may have to perform the same operation hundreds of times!    If the
  28. result of the operation still hasn't exceeded two when the operation has
  29. been performed the maximum number of times, the pixel is considered to be in
  30. the Mandelbrot set (or Julia set) and is colored black.
  31.  
  32. One important thing about fractals is that they are infinitely complex.  No
  33. matter how far you zoom in, there will always be more detail farther in.  If
  34. you seem to be running out of detail, it is because the maximum number of
  35. iterations is set too low.  Raise it, and more of the details along the
  36. boundary of the set will appear.
  37.  
  38. For more information try the book 'The Fractal Geometry of Nature' by Benoit
  39. Mandelbrot [Freeman Press] (he explains it better than could be done in
  40. the limited space available here), or past issues of Scientific American.
  41.  
  42. To get a feel for why Mandelbrot images take so much time to draw, let's
  43. examine the case where the maximum iterations is set to 32 and the drawing
  44. area is 320x200 covering the full Mandelbrot set.  Generating the image will
  45. require over 1,000,000 multiplications, 1,000,000 additions, 700,000
  46. subtractions and tens of millions of other operations.    No wonder...
  47.  
  48. Outstanding Features of the MandelPAUG Program
  49. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  50. So just what does MandelPAUG have to offer?
  51.  
  52.     - Produces Mandelbrot and Julia sets in both two and three
  53.        dimensions.
  54.  
  55.     - Very fast!!  Uses custom, optimized algorithms for
  56.        computations, and features a 'remember mode' that
  57.        reduces recalculations.
  58.  
  59.     - Up to over 300 decimal places of accuracy.  Varies
  60.        with extent of zoom.
  61.  
  62.     - Full control over the number of iterations to be
  63.        performed.  Selectable color increments.
  64.  
  65.     - Full control over screen types and depth, window size,
  66.        colors, etc.
  67.  
  68.     - Images can be saved as IFF files.  Even partially
  69.        completed images can be saved, and then brought back in
  70.        for completion.
  71.  
  72.     - Full zoom in and zoom out control.  Even scrolling of
  73.        images is handled.
  74.  
  75.     - Images and specs can be saved as presets for fast recall.
  76.        An 'undo' function can be used to recall the last
  77.        image/spec.
  78.  
  79.     - Extensive on-line help!  A very user-friendly interface.
  80.  
  81.     - Mandelbrot and Julia set Movies!  Straight zoom-in or
  82.        pan while zooming.  Can be saved and loaded from disk.
  83.  
  84. Check it out and enjoy!!!
  85.  
  86. Before you run
  87. ~~~~~~~~~~~~~~
  88. MandelPAUG requires the use of req.library for its file, color and text
  89. requesters.  Therefore, you need to copy the 'req.library' file to your
  90. libs: directory.
  91.  
  92. If run from the CLI, set the stack to 8000 first.
  93.  
  94. Help
  95. ~~~~
  96. The on-line help function can be reached from the menu or by pressing the
  97. Help key.  From there, select the menu items you need information on.  When
  98. done, exit the help function by pressing the escape key.
  99.  
  100. The on-line help function is primarily designed as a quick reference.  More
  101. details on any particular function can be found in this doc file.
  102.  
  103. Documentation
  104. ~~~~~~~~~~~~~
  105. The remainder of this file contains detailed information on the functions
  106. available in the MandelPAUG program.  There is a great deal of information
  107. here.  Please take the time to read through it in order to get the maximum
  108. utility and enjoyment from the program.
  109.  
  110. The information presented below pretty much follows the order of menu item
  111. in the program.
  112.  
  113. New/Reset
  114. ~~~~~~~~~
  115. Resets the program back to the startup conditions:  full Mandelbrot set with
  116. default settings.  The user's disk-stored defaults, if found, will be used;
  117. otherwise, hardwired defaults will be set.
  118.  
  119. The file used for the disk-stored defaults can be of any type that the
  120. program handles (since they all store the default information).  However,
  121. the file must be named MandelPAUG.def.
  122.  
  123. Opening Files
  124. ~~~~~~~~~~~~~
  125. Loads in location, iterations, colors, etc. information, as well as image
  126. data (if saved).  If 'Specs Only' were stored, then the program will start
  127. calculating the picture 'from scratch'.  If saved with it's Image, it will
  128. load the image, and, if it was only a partially completed picture, will
  129. resume calculations where it had left off.
  130.  
  131. Open defaults attempts to load default settings from the file MandelPAUG.def
  132. located in the current directory.  The program then recalculates the image
  133. using these settings and the current location information.
  134.  
  135. Saving Files
  136. ~~~~~~~~~~~~
  137. Saves current program information to a file on disk.  The user is given the
  138. option of storing the Specs (settings and location information), or the
  139. Image (which includes the Specs).  The Image need not be complete, and when
  140. loaded, the program will continue calculations, if required.
  141.  
  142. The program uses IFF standards, so a saved Image will be compatible with
  143. other programs that work with IFF pictures.
  144.  
  145. Saving Defaults stores current settings (but not location information) that
  146. are used on startup, and when requested by the user.  The Defaults file
  147. will be called MandelPAUG.def.
  148.  
  149. IFF Files
  150. ~~~~~~~~~
  151. The files that MandelPAUG stores are readable by paint programs, picture
  152. viewing programs, and anything else that handles IFF files.  The extra data
  153. that MandelPAUG puts in the file will just be ignored by other programs.
  154. However, if you modify a MandelPAUG file with some other program (a paint
  155. program, for instance), don't try to load it back into MandelPAUG, as all
  156. the extra data that MandelPAUG requires will have been stripped away.
  157.  
  158. Read/Write Errors
  159. ~~~~~~~~~~~~~~~~~
  160. If something funky happens while reading or writing a file, you'll probably
  161. get an error message.  The message will probably refer to the specific IFF
  162. chunk or program variable that couldn't be dealt with.  The information may
  163. not be of much use other than to let you know that the file is probably
  164. unusable.  It could be indicative of a bug, but most likely it'll be a
  165. problem with the disk media.
  166.  
  167. Printing
  168. ~~~~~~~~
  169. Obviously, these options require the use of a printer.
  170.  
  171. Specs - Prints out current location and setting information.
  172.  
  173. Image (Sync) - This prints out the image with the program being tied-up until
  174. the printing is done.
  175.  
  176. Image (ASync) - As above, except spawns a separate task for the print job
  177. that multitasks with MandelPAUG.
  178.  
  179. You might want to play with the colors a bit before printing, especially
  180. turning the black of the set to white to save on ribbon usage.
  181.  
  182. Title Bar
  183. ~~~~~~~~~
  184. The screens title bar can be toggled on and off.
  185.  
  186. Window Size
  187. ~~~~~~~~~~~
  188. Allows the user to select the size of the drawing area.  The drawing area is
  189. always centered in the middle of the screen.  A new image is generated in
  190. the new window using the previous location information.  If the new window's
  191. shape is very different, the resulting image will be distorted.  Use Restore
  192. Aspect in the Zoom submenus to correct this, if desired.
  193.  
  194. Display Type
  195. ~~~~~~~~~~~~
  196. You can choose between the high (640 pixels) and low (320 pixels) horizontal
  197. resolutions, and between the interlaced (400 rows) and non-interlaced (200
  198. rows) vertical resolutions.  Note that if the resolution is changed, the
  199. program will have to recalculate the image from the top.
  200.  
  201. Some high resolution modes may cause screen contention (and thus a decrease
  202. in speed of up to 50%), if fast memory is not available.  See the Bitplanes
  203. section for more information.
  204.  
  205. Bitplanes
  206. ~~~~~~~~~
  207. The number of bitplanes determines the number of colors available (as
  208. indicated by the menu items), and of course, each bitplane added uses
  209. proportionally more chip memory.  Note that if the number of bitplanes is
  210. changed, the program will have to recalculate the image from the top (except
  211. if Remember Mode is On).
  212.  
  213. Increasing the number of bitplanes increases the amount of 'work' the
  214. graphics chip has to do to display the screen.    Hi-res mode (640 pixels)
  215. also increases the graphics chip's loading (interlace mode doesn't).  If the
  216. load is too high, the chip will 'steal cycles' normally available to the CPU
  217. for accessing chip RAM.  This 'contention' can result in a slowdown of
  218. programs running in chip RAM.
  219.  
  220. The 'Settings' menu item will display the potential amount of contention for
  221. a particular screen.  If the program is running in fast RAM, there is no
  222. contention, and this number can be ignored.  Using a screen blanker, or
  223. placing the program's screen behind another with less contention (a normal
  224. Workbench screen, for example) will also eliminate (or at least reduce)
  225. contention.
  226.  
  227. Modifying Colors
  228. ~~~~~~~~~~~~~~~~
  229. Brings up a color requester for changing the current color set.
  230.  
  231. Keyboard shortcuts for the requester:  Arrow keys change the color
  232. selection; R, G and B increase/decrease the color's components depending on
  233. whether or not the shift is pressed; Left-Amiga-V and -B are 'Okay' and
  234. 'Cancel', respectively.
  235.  
  236. It is suggested that colors 0 and 1 be left as black and white,
  237. respectively.  Black represents pixels in the set, and white is used for
  238. boundary pixels.
  239.  
  240. Loading Color Sets
  241. ~~~~~~~~~~~~~~~~~~
  242. Loads one of the three stored color sets as the current (displayed) set.
  243. Save the current set before using this feature, if you have modified the
  244. colors.
  245.  
  246. Saving Color Sets
  247. ~~~~~~~~~~~~~~~~~
  248. Stores the current colors in one of three color set buffers for later use.
  249. Saving a color set will overwrite the data currently stored in that buffer.
  250.  
  251. This function does not store colors on disk.  Save Defaults performs that
  252. function.
  253.  
  254. Color Cycling
  255. ~~~~~~~~~~~~~
  256. The color cycling menu options are:
  257.   Turn color cycling on and off;
  258.   Change the cycling direction; and
  259.   Set the delay time between cycling steps.  Enter a value between 1 and
  260.    10000.
  261.  
  262. To shift colors a single step out or in, use the '<' and '>' keys,
  263. respectively.
  264.  
  265. If Cycling is On when the program is generating an image, colors will cycle
  266. one step after each line is drawn (after each pixel, if precision is three
  267. or higher).
  268.  
  269. If Cycling is On when the image is saved, IFF cycling data will be added
  270. that can be used by other programs.
  271.  
  272. Color Increment
  273. ~~~~~~~~~~~~~~~
  274. The number of iterations done on a pixel determines its color.    With an
  275. increment of one, successive iteration counts map to different colors.
  276. Thus, color bands will represent regions where the iterations is the same
  277. for each pixel.  When the bands get too thin, especially when close to the
  278. set, increasing the color increment will widen the bands by mapping more
  279. than one successive count to the same color.
  280.  
  281. Boundary Thickness
  282. ~~~~~~~~~~~~~~~~~~
  283. Pictures of the Mandelbrot set tend to look best if those pixels in the set
  284. are colored black, and those very near the boundary of the set are colored
  285. white.    This option allows you to set the percent of the iteration interval
  286. that will be colored using color 1 (which should normally be left as white
  287. for this effect).  For example, with iterations set at 512, a 15% boundary
  288. will cause pixels with counts between about 435 and 511 to be colored white.
  289.  
  290. Dimensions
  291. ~~~~~~~~~~
  292. Select between a two- and three-dimensional view of the fractal.  In the
  293. three-dimensional view, each 'point' is drawn as a line whose height is
  294. equal to the number of iterations for that point.  This creates a rugged,
  295. surrealistic landscape with steep, colorful mountains rising towards the
  296. black hole that is the Mandelbrot (or Julia) set.
  297.  
  298. The effects created with the three-dimensional view vary from astounding to
  299. dismal and messy.  If some of your 3-D pictures don't look impressive,
  300. perhaps try somewhere else.  Increasing the color increment reduces the
  301. contrast between the hills and valleys and improves some pictures.
  302.  
  303. Pause
  304. ~~~~~
  305. Select this when you want the program to temporarily stop calculating.    This
  306. is useful especially on high iteration counts and a precision of 2 words,
  307. as the program will take several seconds before responding to the mouse
  308. button being depressed.  When the pause has 'taken effect', the display will
  309. flash.    When ready to resume, select this option again.
  310.  
  311. Priority
  312. ~~~~~~~~
  313. When calculating, MandelPAUG will consume as much CPU time as the system
  314. will allow, and even though it multitasks properly, you may notice a
  315. slow-down in the operation of system functions or other programs.  Lowering
  316. the priority will still allow the program to consume all the 'idle' CPU
  317. time, and will keep it from bogging down the system.
  318.  
  319. Zoom In Options
  320. ~~~~~~~~~~~~~~~
  321. The zoom in options (Corner/Corner, Center/Radius, Corner/Proportional, and
  322. Center/Proportional) all allow you to specify a certain area of the image to
  323. zoom in on.  In all cases, press the left mouse button and hold it down
  324. while moving the mouse to draw a box around the area you want to zoom in on.
  325. Upon releasing the button, you will be asked to confirm or cancel the zoom.
  326.  
  327. There is a cancel menu for use before you start drawing a box.    While
  328. drawing, releasing the mouse button outside the window will cancel the zoom.
  329. A '1-pixel' box (mouse not moved) will also cancel the zoom.
  330.  
  331. Corner/Corner:    With this function the corners of the box are set where the
  332. mouse button is pressed and released.  As a result, the box can be any
  333. shape.    This allows you to create distorted images by drawing oblong
  334. rectangles.  This function gives you the most flexible control over the zoom
  335. area.
  336.  
  337. Center/Radius:    The center of the box is set where the mouse button is
  338. pressed, and one of the box's corners follows the mouse's movements.
  339.  
  340. Corner/Proportional:  One corner of the box is set where the mouse button is
  341. pressed.  Mouse movement will draw a box that retains the proportions of the
  342. original image.  Thus, no distortion occurs from the zoom.
  343.  
  344. Center/Proportional:  Like Corner/Proportional, except the box's center is
  345. set where the mouse button is pressed.
  346.  
  347. Restore Aspect
  348. ~~~~~~~~~~~~~~
  349. This function will correct the distortion caused in previous zooms.  The
  350. 'zoom in' variety will use the smaller 'axis ratio' for restoring the aspect
  351. so that you end up zooming in towards the center of the window.  The 'zoom
  352. out' variety uses the larger ratio which results in a zooming out.
  353.  
  354. Zoom Out All The Way
  355. ~~~~~~~~~~~~~~~~~~~~
  356. Takes you all the way back to the full fractal set.
  357.  
  358. Zoom In/Out Times X
  359. ~~~~~~~~~~~~~~~~~~~
  360. These functions will zoom in/out from the center of the window by the
  361. specified factor (2, 4, 8, or 16).
  362.  
  363. Click to Set Center of New Image
  364. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  365. Click on the location you want the next image to be centered on.
  366.  
  367. After selecting your 'new center', you'll be asked to confirm/cancel the
  368. operation.  There is also a cancel menu for use before you click the mouse
  369. button.  After confirmation, the program will start generating a new image
  370. centered on your 'click'.
  371.  
  372. Click to Shift Image to New Center
  373. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  374. Lines will be drawn on the display to identify the center of the image.
  375. Click on the location you want scrolled to the center.
  376.  
  377. After selecting your 'new center', you'll be asked to confirm/cancel the
  378. operation.  There is also a cancel menu for use before you click the mouse
  379. button.  After confirmation, the program will start scrolling the image to
  380. center the location you clicked on.
  381.  
  382. To stop the scrolling, select cancel from menu.  Scrolling will stop after
  383. the completion of the current step.
  384.  
  385. The wait pointer will disappear when scrolling has completed/ceased.
  386.  
  387. The 5 key on the keypad is a keyboard shortcut for this function.
  388.  
  389. Set Image Domain Manually
  390. ~~~~~~~~~~~~~~~~~~~~~~~~~
  391. This allows you to specify the exact image area by entering the coordinates
  392. for the corners.  You may enter the data with up to 300 digits of accuracy.
  393. Only fifteen digits of each number are displayed when in lo-res (thirty-five
  394. in hi-res).  The other digits scroll as you type.
  395.  
  396. Storing Presets
  397. ~~~~~~~~~~~~~~~
  398. You use these functions to store the picture (or location) you are viewing
  399. to a buffer in memory.    The image (or spec) can be recalled later using the
  400. Load Presets menu.
  401.  
  402. When you store the area, it is saved into memory using the current Preset
  403. Storage Type (Image or Specs) at the bottom of the Store Presets submenu.
  404. You can choose between storing location information or the entire picture.
  405. Obviously, storing the image uses more memory.
  406.  
  407. When you have something stored in one of the presets, an 'I' or an 'S' in
  408. menu item's text will remind you of what is stored there.
  409.  
  410. Keyboard shortcuts for storing presets are '!' through ')' (i.e., shifted
  411. '1' through '0').
  412.  
  413. Loading Presets
  414. ~~~~~~~~~~~~~~~
  415. Pictures or locations that have been saved to memory are redisplayed with
  416. this function.    Keyboard shortcuts have been provided for loading the
  417. pictures so that a short slide show effect can be created.  You can either
  418. hit one of the number keys (1 to 0) to display one of the presets, or you
  419. can hit '=' (for '+') or '-' to display the next or previous preset with an
  420. image stored in it.  By holding down either the '=' or '-' key you can make
  421. quite an effective high-speed slide show.  (This feature is somewhat
  422. obsolete with the implementation of the movie mode.)
  423.  
  424. Undo
  425. ~~~~
  426. The 'UNDO' function will return the program to the state before it last had to
  427. redraw the screen (you can even undo an undo).  It uses the current Previous
  428. Storage type (Specs or Image) specified at the bottom of the menu. The options
  429. allow you to decide how much information the computer will keep track of for
  430. the UNDO function.  If Specs is selected, only the location, window size,
  431. iterations, etc. is remembered, but none of the image is retained.  With Image,
  432. 'everything' is remembered.  Obviously, retaining the Image uses more memory.
  433.  
  434. Iteration Count
  435. ~~~~~~~~~~~~~~~
  436. Allows you to set the maximum number of calculations the program will
  437. perform for each pixel.  Any pixel that reaches this maximum is considered
  438. to be in the Mandelbrot set and is colored black.  Higher numbers take
  439. longer, but produce 'better looking' pictures.
  440.  
  441. The Set Maximum item allows you to enter your own value for the maximum
  442. number of iterations to be performed on each pixel.  When selected, a
  443. requester appears for you to enter a value between 2 and 32767.  Remember,
  444. higher values result in proportionally longer times for generating pictures.
  445. The value you specify will be set in the next to the last menu item.
  446.  
  447. Fractal Equation Selection
  448. ~~~~~~~~~~~~~~~~~~~~~~~~~~
  449. The Julia set is very similar to the Mandelbrot set.  Both use the equation
  450. z = z^2 + c, where z and c are complex numbers.  Both use the location of
  451. each individual pixel as the initial value of z.  Further, the Mandelbrot
  452. set uses the location of each pixel as the value of c, whereas the Julia set
  453. uses a constant c for the entire image.  This constant value of c is set by
  454. the user, either manually when selecting the 'Julia Set' option, or
  455. automatically by clicking on a Mandelbrot image after selection the 'Click
  456. Julia c' option.  The concept behind the automatic entry is that each point
  457. in the Mandelbrot set has an associated Julia set.  The 'connected-' or
  458. 'fragmented-'ness of a Julia set image is affected by how far its c value is
  459. from the edge of the Mandelbrot set.
  460.  
  461. When going from the Mandelbrot set to a Julia set, the last Mandelbrot set
  462. information is stored in a special preset.  Whether specs, or specs and
  463. image are retained is determined by the setting at the bottom of the Store
  464. Presets menu.  Upon 'returning' to the Mandelbrot set, this preset
  465. information is used to regenerate the display.
  466.  
  467. Remember Mode
  468. ~~~~~~~~~~~~~
  469. This mode allows MandelPAUG to keep a 'memory' of the iterations required
  470. for each pixel.  While the cost in terms of memory usage will be heavy, the
  471. benefits can be well worth it.
  472.  
  473. With this enabled, you can change the number of bitplanes, or the color
  474. increment, or the boundary thickness, or the dimension and the program will
  475. intelligently recalculate only that which is necessary.  Most of the above
  476. will require NO recalculations at all!    Only drawing time would be required.
  477.  
  478. Lights, Camera, Action...  Here comes Mandelbrot movies!!!
  479. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  480. Perhaps the most stupendous feature of the MandelPAUG program is the ability
  481. to automatically produce a series of images that can be "connected" together
  482. to form a movie.  The effects that can be produced with this feature are
  483. rare and beautiful, and probably not available anywhere else on a personal
  484. computer.
  485.  
  486. You can make movies from the Mandelbrot set, from any of the infinite
  487. number Julia sets, or make a movie of a series of Julia sets.
  488.  
  489. Movies on Disk
  490. ~~~~~~~~~~~~~~
  491. The frames of a movie are saved as individual IFF files, and have filename
  492. suffixes ranging from '.001' to '.999'.  When saving to disk, if you supply
  493. a filename with no suffix, the frames will start with '.001'.  If you supply
  494. a suffix, the program will use it (e.g., if you supply 'movie.005', that
  495. will be the name given to the first frame; the second will be 'movie.006',
  496. and so on).  When loading, if you supply a filename with no suffix, the
  497. program will attempt to load your filename with suffix '.001' added.  If
  498. your filename has a suffix, it will load that as the first frame, and
  499. proceed sequentially.  Loading will halt when it runs out of files to load,
  500. or when the Maximum Frames count is reached (or sooner if you run out of
  501. memory).  (E.g., if you specify 'movie.003' and a max of 5 frames, the
  502. program will load 'movie.003' through 'movie.007'.)
  503.  
  504. Movie frames must all be of the same screen type.  If a loaded frame has a
  505. different screen type from the previous frame, the movie will be deleted
  506. from memory.  (This can come about when concatenating two movies by renaming
  507. the frame files.)
  508.  
  509. Movie Playback
  510. ~~~~~~~~~~~~~~
  511. Movie playback can only be performed by pressing F1 (i.e., there is no menu
  512. item for playing a movie).  Once started, the movie will play continuously
  513. until another key (not F1) is pressed.
  514.  
  515. Movie Playback Delay
  516. ~~~~~~~~~~~~~~~~~~~~
  517. Allows you to set a delay from 0 to 3600 that is used between frames when
  518. playing back a movie.  A delay of 60 equates to about 1 second.
  519.  
  520. Loading a Movie
  521. ~~~~~~~~~~~~~~~
  522. Allows you to load a previously saved movie from disk.    The program will
  523. load frames from the one specified until it runs out of frames or until it
  524. has loaded the maximum number specified in the 'Frames' menu item.
  525.  
  526. Saving a Movie
  527. ~~~~~~~~~~~~~~
  528. Allows you to save a movie currently in memory to disk.  Frames are stored
  529. as individual IFF files that are numbered sequentially.  If a numeric suffix
  530. is supplied in the filename, it will be used for numbering the saved frames.
  531.  
  532. Note that the specification data stored in frame files will be incorrect,
  533. except for the last frame.  Make the movie to disk if you require proper
  534. specs in each frame's file.
  535.  
  536. Maximum Number of Movie Frames
  537. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  538. Allows you to set the maximum number of frames in a movie.
  539.  
  540. Where to Make the Movie
  541. ~~~~~~~~~~~~~~~~~~~~~~~
  542. Movie frames can be saved to disk as they are completed, can be kept in
  543. memory for subsequent playback, or both.   The default is to make it in
  544. memory, but not to disk.
  545.  
  546. With 'Make to Disk', frames are saved as individual IFF files that are
  547. numbered sequentially.    When you start making a movie, you'll be asked for a
  548. filename.  If a numeric extension is supplied in the filename, it will be
  549. used for numbering the frames.
  550.  
  551. Making to disk will ensure that each frame's file contains proper specs that
  552. can be subsequently used by the program, if required.
  553.  
  554. Set Multiplier for Movie Zooms
  555. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  556. Allows you to set a 'multiplier' from 1 to 65535 that will used to determine
  557. the zoom factor between movie frames.  The zoom factor will be 65536 divided
  558. by the multiplier (e.g., 32768 would be a zoom of 2; 43691 a zoom of 1.5).
  559.  
  560. Set Multiplier With Mouse
  561. ~~~~~~~~~~~~~~~~~~~~~~~~~
  562. Allows you to set the 'multiplier' using the mouse.  Frame the size of the
  563. window you want zoomed in on for each movie frame, and then click the mouse
  564. button.
  565.  
  566. Zoom-In On Center Movie
  567. ~~~~~~~~~~~~~~~~~~~~~~~
  568. Makes a 'zoom in on the center' type movie on the current image; using the
  569. 'multiplier' to determine the zoom factor between frames.
  570.  
  571. Zoom-In On an Area Movie
  572. ~~~~~~~~~~~~~~~~~~~~~~~~
  573. Hold the mouse button and frame a area you want zoomed in on for the movie.
  574. The options allow you to set an area proportional to the current window
  575. either by 'dragging' the box from corner to corner, or by clicking on the
  576. center and dragging outward.  The program will then make a movie that zooms
  577. and shifts from frame to frame.  The zoom factor is determined
  578. automatically based on the size of the area you select and the number in the
  579. Frames menu item.
  580.  
  581. Preset 1 to Preset 2 Movie
  582. ~~~~~~~~~~~~~~~~~~~~~~~~~~
  583. This feature makes a movie that spans from the information stored in Preset
  584. 1 to that stored in Preset 2.  In other words, the first frame will be what
  585. is specified in Preset 1, the last uses Preset 2, and the frames in between
  586. will zoom and pan between the two.  Obviously, all that is required is that
  587. information be set in Presets 1 and 2.    The zoom factor is determined
  588. automatically based on the data in the Presets and the number in the Frames
  589. menu item.
  590.  
  591. Preset 1 can be set with either an image or a spec.  If it is an image, the
  592. image will be used (and completed if only partially done).  Preset 2 can be
  593. image or spec, too.  However, the program only uses location data from
  594. Preset 2.  Thus, even if Preset 2 contains an image, it will not be used,
  595. and the last frame of the movie will be calculated in full.
  596.  
  597. Julia Set Movies
  598. ~~~~~~~~~~~~~~~~
  599. Julia set movies are a series of full Julia set images in which the 'c'
  600. value changes between frames.
  601.  
  602. First, setup on a initial Mandelbrot set image.  Don't zoom in too far or
  603. the 'c' values won't change much and the frames will all look alike.  Next,
  604. press F9 or use the menu for Julia Movie.  Now click the mouse on the
  605. Mandelbrot image, and while holding down the mouse button, 'drag' a line.
  606. The Julia set images will use 'c' values along this line at intervals
  607. determined by the number of frames you specify.
  608.  
  609. Julia set movies can be made in RAM or to disk, saved, loaded and played
  610. back just like 'zoom-in' movies.
  611.  
  612. Delete the Movie From Memory
  613. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  614. Deletes a movie from memory, and releases the memory it used.  You don't
  615. have to clear out one movie before making or loading another; the program
  616. will do that automatically.
  617.  
  618. Cut!
  619. ~~~~
  620. You can cancel a movie in the making with the cancel menu.  That will cause
  621. the current image to be the last frame, and control will return to you when
  622. that image is finished.
  623.  
  624. Show Current Settings
  625. ~~~~~~~~~~~~~~~~~~~~~
  626. This displays information about the current program settings.  Most of the
  627. items refer to current options selectable by the user.    See the Bitplanes
  628. section for information about contention.  The Image Domain refers to the
  629. coordinates for the left edge, horizontal center, right edge, top edge,
  630. vertical center and bottom edge of the display.  The Precision refers to the
  631. number of 16-bit words of data used to represent numbers in the program.  As
  632. you zoom in, the Precision will increase and so will the calculation times.
  633. You can zoom in up to 31 words of precision.  (I don't think you'll ever get
  634. that far.  The most I ever did was 7, and it took 2.5 DAYS! to generate a
  635. hi-res interlaced image on a 68010 processor.)    The time at the bottom of
  636. the display refers to the amount of time the program has spent generating
  637. the current image.  It is intended to give you an idea as to how rapidly
  638. picture generation is proceeding, and may not perfectly accurate (or even
  639. correct).  In particular, many menu operations do not 'pause the clock'
  640. (although some do), and scrolling after the picture has completed does not
  641. add to the time.
  642.  
  643. Help Mode
  644. ~~~~~~~~~
  645. When in help mode, just select a menu item, and any information on the item
  646. will be displayed.  Some items may tell you to refer to this doc file for
  647. specific information (the trivial one do that).  Some items may have more
  648. than one page of information.  If <more> is at the bottom of a page, click
  649. with the mouse or hit space to get the next page.
  650.  
  651. When done with help, click the close gadget or hit escape.
  652.  
  653. The help key or a '?' can be used to access the help mode in addition to
  654. using the menu.
  655.  
  656. Keyboard Usage
  657. ~~~~~~~~~~~~~~
  658. Amiga users have come to appreciate the ability to use single keystrokes to
  659. access functions instead of having to constantly use the menus.  Thus,
  660. MandelPAUG allows menu items with shortcuts to be accessed by typing the
  661. shortcut key all by itself (as well as with the Right-Amiga key
  662. combination).
  663.  
  664.     Menu keys (and alternates):
  665.  
  666.         X :  New/reset
  667.         O :  Open spec/image
  668.         S :  Save image
  669.         P :  Spawn task to print image
  670.         W :  Change window size
  671.         K :  Modify colors
  672.         Tab :  Turn color cycling on/off
  673.         . :  Change color cycling direction to 'in'
  674.         , :  Change color cycling direction to 'out'
  675.         Space/Caps lock :  Pause
  676.         Q/Escape :  Quit
  677.         D :  Zoom in corner/corner (along diagonal)
  678.         R :  Zoom in center/radius
  679.         C :  Zoom in corner/proportional
  680.         M :  Zoom in center/proportional (from middle)
  681.         ] :  Zoom in two times
  682.         } :  Zoom in sixteen times
  683.         A :  Restore aspect (zoom in)
  684.         Z :  Zoom out all the way
  685.         [ :  Zoom out two times
  686.         { :  Zoom out sixteen times
  687.         Keypad 5 :  Click on center with scrolling
  688.         ! thru ) :  Store presets
  689.         1 thru 0 :  Load presets
  690.         U/Backspace :  Undo
  691.         J :  Click on Mandelbrot image to set Julia set 'c' value
  692.         F2 : Enter 'frame delay' for movie playback (60 = 1 sec.)
  693.         F3 : Enter number of frames to make/load
  694.         F4 : Toggle make 'to disk'
  695.         F5 : Toggle make 'in RAM'
  696.         F6 : Set 'multiplier' with mouse
  697.         F7 : Make a central zoom movie
  698.         F8 : Make movie using presets 1 and 2
  699.         F9 : Make a Julia set movie
  700.         F10 : Erase movie from memory
  701.         I :  Show information on current image
  702.         ?/Help :  Help mode
  703.  
  704. Some functions, by the nature of their operations, cannot be accessed
  705. through menus.    These include:
  706.  
  707.         F1 : Play movie continuously (press any other key to stop)
  708.         > :  Cycle colors one step 'in'
  709.         < :  Cycle colors one step 'out'
  710.         - :  Display previous image stored in presets
  711.         = :  Display next image stored in presets
  712.  
  713. The image can be scrolled using either the numeric keypad, or the arrow
  714. keys.  The numeric keypad is configured to scroll the window as follows:
  715.  
  716.         7-up,left     8-up    9-up,right
  717.  
  718.         4-left            6-right
  719.  
  720.         1-down,left   2-down    3-down,right
  721.  
  722. The arrow keys function analogously.
  723.  
  724. Using the shift key with a scrolling key will repeat the step 10 times.  To
  725. stop multiple scrolling, select cancel from the menu.  Scrolling will stop
  726. after the completion of the current step.
  727.  
  728. The wait pointer will disappear when scrolling has completed/ceased.
  729.  
  730. There are keyboard shortcuts that can be used when entering the image domain
  731. or entering the 'c' value for the Julia set.  Hitting return moves the
  732. cursor to the next 'box'.  On the last box, the cursor disappears.  At this
  733. point, you can:  Hit return to put the cursor back to the first box; hit 'Y'
  734. or Left-Amiga-V to simulate selecting the confirm gadget; or hit 'N', 'Q',
  735. Escape, or Left-Amiga-B for cancel.
  736.  
  737. There are also a number of keyboard shortcuts that can be used with the
  738. color requester.  See information on 'Modify Colors' for details.
  739.  
  740. Bugs and Unusual Features
  741. ~~~~~~~~~~~~~~~~~~~~~~~~~
  742. On an A3000 with an "interlace" screen, the file requester is unreadable.
  743. This is a problem between req.library and WB 2.0 that I can do nothing
  744. about.
  745.  
  746. The frame files for a movie that is made in memory and then saved to disk
  747. will all contain the location information for the last frame (i.e., the
  748. location data will not match the image except for the last frame).  Thus,
  749. strange things may occur if one of these files is loaded as a separate
  750. image for zooming, movie making, etc.  Making the movie to disk will ensure
  751. that correct location data is saved in each frame file.
  752.  
  753. If a movie is present in memory, and the display characteristics are
  754. changed (bit planes, interlace, resolution, etc.), the movie will be
  755. deleted from memory.
  756.  
  757. Remember:  "There's always one more bug!"
  758.  
  759. Source Code
  760. ~~~~~~~~~~~
  761. Source code is available for both MandelPAUG and its 'parent' MandFXP.
  762. Send either $5.00 or a self-addressed-stamped mailer with a blank disk to
  763. the address below.
  764.  
  765. Questions, Bug Reports, Source Requests
  766. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  767. I can be contacted at:
  768.  
  769. Mailing address:
  770.     Jerry D. Hedden
  771.     28 Windemere Dr.
  772.     Sicklerville, NJ
  773.         08081-3023
  774.  
  775. Home phone: 609-629-3975
  776. Internet: hedden@eniac.seas.upenn.edu
  777.